﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Dominio;
using Interfaces;

namespace Obligatorio1
{
    public partial class VentanaManguera : Form
    {
        Surtidor SurtidorActual;

        public VentanaManguera(Surtidor idSurtidor)
        {
            InitializeComponent();
            SurtidorActual = idSurtidor;
        }

        private void ActualizarListaMangueras()
        {
            ISurtidor intSurtidor = new ImpISurtidor();
            listaMangueras.Items.Clear();
            foreach (Manguera item in intSurtidor.ObtenerListaMangueras(SurtidorActual))
            {
                listaMangueras.Items.Add(item);
            }
        }

        private void ActualizarListaTanque()
        {
            ITanque it = new ImpITanque();
            listaTanques.Items.Clear();
            List<Tanque> listaNombre = it.ObtenerDatosTanques();

            foreach (var element in listaNombre)
            {
                listaTanques.Items.Add(element);
            }
        }

        private void VentanaManguera_Load(object sender, EventArgs e)
        {
            ActualizarListaMangueras();
            ActualizarListaTanque();
        }

        private void buttonAgregarManguera_Click(object sender, EventArgs e)
        {
            if (ValidarTanque())
            {
                Tanque tanque = (Tanque)listaTanques.SelectedItem;
                if (tanque is TanqueCombustible)
                {
                    TanqueCombustible tanqueSeleccionado = (TanqueCombustible)listaTanques.SelectedItem;
                    ITanque iTanque = new ImpITanque();
                    iTanque.AgregarMangueraASurtidor(tanqueSeleccionado, SurtidorActual);
                    ActualizarListaMangueras();
                }
                else 
                {
                    MessageBox.Show("Error. Debe seleccionar un Tanque de Combustible");
                }                       
            }
        }

        private void buttonEliManguera_Click(object sender, EventArgs e)
        {
            if (ValidarManguera())
            {
                Manguera mangueraSeleccionada = (Manguera)listaMangueras.SelectedItem;
                ITanque iTanque = new ImpITanque();
                iTanque.EliminarMangueraDeSurtidor(SurtidorActual, mangueraSeleccionada);
                ActualizarListaMangueras();
            }
        }

        private void buttonVolver_Click(object sender, EventArgs e)
        {
            this.Hide();
        }

        private bool ValidarManguera()
        {
            if (listaMangueras.SelectedIndex == -1)
            {
                MessageBox.Show("Error. No selecciono ninguna manguera");
                return false;
            }
            return true;
        }

        private bool ValidarTanque()
        {
            if (listaTanques.SelectedIndex == -1)
            {
                MessageBox.Show("Error. No selecciono ningun tanque");
                return false;
            }
            return true;
        }

    }
}
